---------------------------------------------------
-- Variaveis globais
---------------------------------------------------
	_versaoLua = "2.0-20150319"
	
---------------------------------------------------
-- Funções e procedimentos
---------------------------------------------------
function Call_Module(Module_Name)
	echo ("<data destination=parser>\r\n")
		echo ("	dofile(\"redeuze.lua\")")
		echo ("	"..Module_Name.."()")
	echo ("</data>")
end

function Tela_Inicial_ANT()
	
	local Modelo_POS
	
	get = loadstring(GET)()
	Modelo_POS = get["MODEL_POS"]
	
	Atualiza("7", Modelo_POS, Consulta("7"))
	
	if Modelo_POS == "VX680" then
		echo("<CONSOLE>")
			echo("<BR>")
			echo("==============================<BR>")
			echo("            SKYTEF<BR>")
			echo("==============================<BR><BR><BR>")
			echo("       PRESSIONE ENTER<BR>")
			echo("        PARA INICIAR")
		echo("</CONSOLE>")
	end
	
	if Modelo_POS == "VX520" then
		echo("<CONSOLE>")
			echo("=====================<BR>")
			echo("       SKYTEF<BR>")
			echo("=====================<BR><BR>")
			echo("   PRESSIONE ENTER<BR>")
			echo("    PARA INICIAR")
		echo("</CONSOLE>")	
	end
	
	echo("<capture NAME=ESCOLHA>")
	echo("<GET TYPE=FIELD SIZE=1 COL=90 LIN=120 NOENTER=1>")
	echo("<GET TYPE=SPECIALKEY>")
	echo("</capture>")

	Call_Module("TrataEscolha")
end

function Tela_Inicial()
	
	local Modelo_POS
	
	get = loadstring(GET)()
	Modelo_POS = get["MODEL_POS"]
	
	Atualiza("7", Modelo_POS, Consulta("7"))
	
	Call_Module("Escolheu_Extrato_Boleto")
end

function TrataEscolha()

	Modelo_POS = Consulta("7")
	
	--	Seleciona Enter :
		-- Novo Menu, ecolha Boleto ou ISO		
		if Modelo_POS == "VX680" then
			echo("<CONSOLE>")
				echo("<BR>")
				echo("          FUNCOES :<BR><BR><BR><BR><BR>")
				echo("     1 - EXTRATO / BOLETO<BR><BR>")
			echo("</CONSOLE>")
			echo("<GET TYPE=FIELD NAME=ESCOLHA SIZE=1 COL=90 LIN=120 NOENTER=1>")
			echo("<CONSOLE>")
				echo("<BR><BR><BR><BR><BR><BR><BR><BR><BR>         Aguarde...")
			echo("</CONSOLE>")
		end
	
		if Modelo_POS == "VX520" then
			echo("<CONSOLE>")
				echo("      FUNCOES :<BR><BR>")
				echo("1 - EXTRATO / BOLETO<BR>")
			echo("</CONSOLE>")	
			echo("<GET TYPE=FIELD NAME=ESCOLHA SIZE=1 COL=90 LIN=120 NOENTER=1>")
			echo("<CONSOLE>")
				echo("<BR><BR><BR>     Aguarde...")
			echo("</CONSOLE>")
		end
		Call_Module("TrataEscolha_Operacao")
	
end

function TrataEscolha_ANT()

	get = loadstring(GET)()
	local IdEscolha = get["ESCOLHA"]
	
	Modelo_POS = Consulta("7")
	
	--	Seleciona Enter :
	if IdEscolha == "8D" then		
		-- Novo Menu, ecolha Boleto ou ISO		
		if Modelo_POS == "VX680" then
			echo("<CONSOLE>")
				echo("<BR>")
				echo("          FUNCOES :<BR><BR><BR><BR><BR>")
				echo("     1 - EXTRATO / BOLETO<BR><BR>")
			echo("</CONSOLE>")
			echo("<GET TYPE=FIELD NAME=ESCOLHA SIZE=1 COL=90 LIN=120 NOENTER=1>")
			echo("<CONSOLE>")
				echo("<BR><BR><BR><BR><BR><BR><BR><BR><BR>         Aguarde...")
			echo("</CONSOLE>")
		end
	
		if Modelo_POS == "VX520" then
			echo("<CONSOLE>")
				echo("      FUNCOES :<BR><BR>")
				echo("1 - EXTRATO / BOLETO<BR>")
			echo("</CONSOLE>")	
			echo("<GET TYPE=FIELD NAME=ESCOLHA SIZE=1 COL=90 LIN=120 NOENTER=1>")
			echo("<CONSOLE>")
				echo("<BR><BR><BR>     Aguarde...")
			echo("</CONSOLE>")
		end
		Call_Module("TrataEscolha_Operacao")
	end
	
	--	Seleciona a Configuração :
	if IdEscolha == "9" then
	
		-- obtem senha digitada pelo usuário:
		if Modelo_POS == "VX680" then
			echo("<CONSOLE>")
				echo("<BR><BR><BR><BR><BR><BR><BR>")
				echo("        DIGITE A SENHA")
			echo("</CONSOLE>")
			echo("<GET TYPE=PASS NAME=SENHA_DIGITADA SIZE=10 COL=10 LIN=10>")
		end		
		if Modelo_POS == "VX520" then
			echo("<CONSOLE>")
				echo("<BR><BR>")
				echo("   DIGITE A SENHA")
			echo("</CONSOLE>")
			echo("<GET TYPE=PASS NAME=SENHA_DIGITADA SIZE=10 COL=5 LIN=5>")
		end
		
		-- ativa menu:		
		Call_Module("Trata_Menu_Config")
	end	
end

function TrataEscolha_Operacao()
	get = loadstring(GET)()
	local IdEscolha = get["ESCOLHA"]
	
	Modelo_POS = Consulta("7")
	
	--	Seleciona Enter :
	if IdEscolha == "1" then
		-- extrato / boleto
		Call_Module("Escolheu_Extrato_Boleto")
	elseif IdEscolha == "9" then
		-- obtem senha digitada pelo usuário:
		if Modelo_POS == "VX680" then
			echo("<CONSOLE>")
				echo("<BR><BR><BR><BR><BR><BR><BR>")
				echo("        DIGITE A SENHA")
			echo("</CONSOLE>")
			echo("<GET TYPE=PASS NAME=SENHA_DIGITADA SIZE=10 COL=10 LIN=10>")
		end		
		if Modelo_POS == "VX520" then
			echo("<CONSOLE>")
				echo("<BR><BR>")
				echo("   DIGITE A SENHA")
			echo("</CONSOLE>")
			echo("<GET TYPE=PASS NAME=SENHA_DIGITADA SIZE=10 COL=5 LIN=5>")
		end
		
		-- ativa menu:		
		Call_Module("Trata_Menu_Config")
	else
		-- opção invalida
		if Modelo_POS == "VX680" then
			echo("<CONSOLE>")
				echo("<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>")
				echo("     ESCOLHA INCORRETA !")
			echo("</CONSOLE>")
		end		
		if Modelo_POS == "VX520" then
			echo("<CONSOLE>")
				echo("<BR><BR><BR><BR>")
				echo(" ESCOLHA INCORRETA !")
			echo("</CONSOLE>")
		end
		echo("<DELAY TIME=5>")
		Call_Module("TrataEscolha")
	end
end

function Escolheu_Extrato_Boleto()
	
	local url_webservice
	local cd_grupo
	local de_login_usu
	local de_senha_usu
	local cd_loja
	local Modelo_POS
	local url_principal
	local url_cliente
	
	Modelo_POS = Consulta("7")

	if Modelo_POS == "VX680" then
		echo("<CONSOLE>")
			echo("<BR><BR><BR><BR><BR><BR><BR><BR><BR>         Aguarde...")
		echo("</CONSOLE>")
	end		
	if Modelo_POS == "VX520" then
		echo("<CONSOLE>")
			echo("<BR><BR><BR>     Aguarde...")
		echo("</CONSOLE>")
	end
		
	-- pega variaveis gravadas no banco:
	url_webservice = Consulta("1")
	cd_grupo = Consulta("2")
	de_login_usu = Consulta("3")
	de_senha_usu = Consulta("4")
	cd_loja = Consulta("5")
	url_principal = Consulta("8")
	url_cliente = Consulta("9")
		
	-- envia variáveis:
	-- url_principal, url_cliente, url_webservice, cd_grupo, de_login_usu, de_senha_usu, cd_loja
	echo("<get type=hidden name=url_principal value="..url_principal..">")
	echo("<get type=hidden name=url_cliente value="..url_cliente..">")
	echo("<get type=hidden name=url_webservice value="..url_webservice..">")		
	echo("<get type=hidden name=url_webservice value="..url_webservice..">")
	echo("<get type=hidden name=cd_grupo value="..cd_grupo..">")
	echo("<get type=hidden name=de_login_usu value="..de_login_usu..">")
	echo("<get type=hidden name=de_senha_usu value="..de_senha_usu..">")
	echo("<get type=hidden name=cd_loja value="..cd_loja..">")
	echo("<get type=hidden name=modelo_pos value="..Modelo_POS..">")
		
	echo("<get type=hidden name=TELA value=1>")
	echo("<get type=hidden name=EOS_VER_POS value=Não Possui>")
	echo("<get type=hidden name=LUA_VER_POS value=".._versaoLua..">")
	echo("<GET TYPE=DATETIME NAME=HORA_POS>")
	echo("<GET TYPE=SERIALNO NAME=SERIAL_POS>")
	echo("<GET TYPE=VERSION NAME=NAVS_VER_POS>")
	echo("<GET TYPE=OSVERSION NAME=OS_VER_POS>")


	echo("<POST>")
end

function Trata_Menu_Config()
	
	local SenhaConfigInput
	local SenhaConfigDB
	local Modelo_POS = Consulta("7")
	
	local url_principal = Consulta("8")
	local url_cliente = Consulta("9")
	local url_webservice = Consulta("1")
	local cd_grupo = Consulta("2")
	local de_login_usu = Consulta("3")
	local de_senha_usu = Consulta("4")
	local cd_loja = Consulta("5")
	local senha_config = Consulta("6")
	
	local id_terminal = Consulta("10")
	local cod_estabelecimento = Consulta("11")
	local provedor = Consulta("12")

	local ip_iso = Consulta("14")
	local porta_iso = Consulta("15")
	
	get = loadstring(GET)()
	SenhaConfigInput = get["SENHA_DIGITADA"]
		
	-- consulta senha banco:
	SenhaConfigDB = Consulta("6")
		
	-- confere e executa os procedimentos
	if SenhaConfigDB == SenhaConfigInput then
	
		if Modelo_POS == "VX680" then
		
			echo("<CONSOLE>")
				echo("------------------------------<BR>")
				echo(" Configuracao para WebService <BR>")
				echo("------------------------------<BR>")
				echo("     - Url do Web Service     <BR><BR>")
				echo("Url Principal:<BR>Atual:"..url_principal.."<BR><BR><BR>")
				echo("Url Cliente:<BR>Atual:"..url_cliente.."<BR><BR><BR>")
				echo("Url web service:<BR>Atual:"..url_webservice.."<BR><BR><BR>")
			echo("</CONSOLE>")
			-- colocou msg na tela e aguarda edicao dos campos
			echo("<GET TYPE=FIELD ALPHA=1 NAME=URL_PRINCIPAL SIZE=40 COL=0 LIN=8 NOENTER=0>")
			echo("<GET TYPE=FIELD ALPHA=1 NAME=URL_CLIENTE SIZE=40 COL=0 LIN=12 NOENTER=0>")
			echo("<GET TYPE=FIELD ALPHA=1 NAME=URL_WEB_SERVICE SIZE=40 COL=0 LIN=16 NOENTER=0>")
		
			echo("<CONSOLE>")
				echo("------------------------------<BR>")
				echo(" Configuracao para WebService <BR>")
				echo("------------------------------<BR>")
				echo("          - Outros :          <BR>")
				echo("Codigo Grupo:<BR>Atual:"..cd_grupo.."<BR><BR>")
				echo("Login usuario:<BR>Atual:"..de_login_usu.."<BR><BR>")
				echo("Senha usuario:<BR>Atual:"..de_senha_usu.."<BR><BR>")
				echo("Codigo Loja:<BR>Atual:"..cd_loja.."<BR><BR>")
				echo("Senha de Configuracao:<BR>Atual:"..senha_config.."<BR>")
			echo("</CONSOLE>")
			
			-- colocou msg na tela e aguarda edicao dos campos
			echo("<GET TYPE=FIELD ALPHA=1 NAME=COD_GRUPO SIZE=30 COL=0 LIN=7 NOENTER=0>")
			echo("<GET TYPE=FIELD ALPHA=1 NAME=LOGIN SIZE=30 COL=0 LIN=10 NOENTER=0>")
			echo("<GET TYPE=FIELD ALPHA=1 NAME=SENHA SIZE=30 COL=0 LIN=13 NOENTER=0>")
			echo("<GET TYPE=FIELD ALPHA=1 NAME=COD_LOJA SIZE=30 COL=0 LIN=16 NOENTER=0>")
			echo("<GET TYPE=FIELD ALPHA=1 NAME=SENHA_CONF SIZE=30 COL=0 LIN=19 NOENTER=0>")
			
			echo("<CONSOLE>")
				echo("------------------------------<BR>")
				echo("    Configuracao para ISO     <BR>")
				echo("------------------------------<BR>")
				echo("        - Parametros :        <BR>")				
				echo("Id Terminal:<BR>Atual:"..id_terminal.."<BR><BR>")
				echo("Codigo Estabelecimento:<BR>Atual:"..cod_estabelecimento.."<BR><BR>")
				echo("Provedor:<BR>Atual:"..provedor.."<BR><BR>")
				echo("IP ISO:<BR>Atual:"..ip_iso.."<BR><BR>")
				echo("Porta ISO:<BR>Atual:"..porta_iso.."<BR><BR>")
			echo("</CONSOLE>")
			
			-- colocou msg na tela e aguarda edicao dos campos
			echo("<GET TYPE=FIELD ALPHA=1 NAME=ID_TERMINAL SIZE=30 COL=0 LIN=7 NOENTER=0>")
			echo("<GET TYPE=FIELD ALPHA=1 NAME=COD_ESTABELECIMENTO SIZE=30 COL=0 LIN=10 NOENTER=0>")
			echo("<GET TYPE=FIELD ALPHA=1 NAME=PROVEDOR SIZE=30 COL=0 LIN=13 NOENTER=0>")
			echo("<GET TYPE=FIELD ALPHA=1 NAME=IP_ISO SIZE=30 COL=0 LIN=16 NOENTER=0>")
			echo("<GET TYPE=FIELD ALPHA=1 NAME=PORTA_ISO SIZE=30 COL=0 LIN=19 NOENTER=0>")
		end		
		if Modelo_POS == "VX520" then
		
			echo("<CONSOLE>")
				echo("  Config. WebService <BR>")
				echo("---------------------<BR>")
				echo("Url Principal:<BR>")
				echo("Atual:"..url_principal.."<BR>")
			echo("</CONSOLE>")
			echo("<GET TYPE=FIELD ALPHA=1 NAME=URL_PRINCIPAL SIZE=40 COL=0 LIN=5>")
			
			echo("<CONSOLE>")
				echo("  Config. WebService <BR>")
				echo("---------------------<BR>")
				echo("Url Cliente:<BR>")
				echo("Atual:"..url_cliente.."<BR>")
			echo("</CONSOLE>")
			echo("<GET TYPE=FIELD ALPHA=1 NAME=URL_CLIENTE SIZE=40 COL=0 LIN=5>")
			
			echo("<CONSOLE>")
				echo("  Config. WebService <BR>")
				echo("---------------------<BR>")
				echo("Url web service:<BR>")
				echo("Atual:"..url_webservice.."<BR>")
			echo("</CONSOLE>")
			echo("<GET TYPE=FIELD ALPHA=1 NAME=URL_WEB_SERVICE SIZE=40 COL=0 LIN=5>")
			
			echo("<CONSOLE>")
				echo("  Config. WebService <BR>")
				echo("---------------------<BR>")
				echo("Codigo Grupo:<BR>")
				echo("Atual:"..cd_grupo.."<BR>")
			echo("</CONSOLE>")			
			echo("<GET TYPE=FIELD ALPHA=1 NAME=COD_GRUPO SIZE=30 COL=0 LIN=5>")
			
			echo("<CONSOLE>")
				echo("  Config. WebService <BR>")
				echo("---------------------<BR>")
				echo("Login usuario:<BR>")
				echo("Atual:"..de_login_usu.."<BR>")
			echo("</CONSOLE>")			
			echo("<GET TYPE=FIELD ALPHA=1 NAME=LOGIN SIZE=30 COL=0 LIN=5>")
			
			echo("<CONSOLE>")
				echo("  Config. WebService <BR>")
				echo("---------------------<BR>")
				echo("Senha usuario:<BR>")
				echo("Atual:"..de_senha_usu.."<BR>")
			echo("</CONSOLE>")			
			echo("<GET TYPE=FIELD ALPHA=1 NAME=SENHA SIZE=30 COL=0 LIN=5>")
			
			echo("<CONSOLE>")
				echo("  Config. WebService <BR>")
				echo("---------------------<BR>")
				echo("Codigo Loja:<BR>")
				echo("Atual:"..cd_loja.."<BR>")
			echo("</CONSOLE>")			
			echo("<GET TYPE=FIELD ALPHA=1 NAME=COD_LOJA SIZE=30 COL=0 LIN=5>")
			
			echo("<CONSOLE>")
				echo("  Config. WebService <BR>")
				echo("---------------------<BR>")
				echo("Senha de Config.:<BR>")
				echo("Atual:"..senha_config.."<BR>")
			echo("</CONSOLE>")			
			echo("<GET TYPE=FIELD ALPHA=1 NAME=SENHA_CONF SIZE=30 COL=0 LIN=5>")
			
			-- Config ISO:
			echo("<CONSOLE>")
				echo("Configuracao para ISO<BR>")
				echo("---------------------<BR>")
				echo("   Id. Terminal:     <BR>")
				echo("Atual:"..id_terminal.."<BR>")
			echo("</CONSOLE>")			
			echo("<GET TYPE=FIELD ALPHA=1 NAME=ID_TERMINAL SIZE=30 COL=0 LIN=5>")
			
			echo("<CONSOLE>")
				echo("Configuracao para ISO<BR>")
				echo("---------------------<BR>")
				echo("Cod. Estabelecimento:<BR>")
				echo("Atual:"..cod_estabelecimento.."<BR>")
			echo("</CONSOLE>")			
			echo("<GET TYPE=FIELD ALPHA=1 NAME=COD_ESTABELECIMENTO SIZE=30 COL=0 LIN=5>")
			
			echo("<CONSOLE>")
				echo("Configuracao para ISO<BR>")
				echo("---------------------<BR>")
				echo("     Provedor:       <BR>")
				echo("Atual:"..provedor.."<BR>")
			echo("</CONSOLE>")			
			echo("<GET TYPE=FIELD ALPHA=1 NAME=PROVEDOR SIZE=30 COL=0 LIN=5>")

			echo("<CONSOLE>")
				echo("Configuracao para ISO<BR>")
				echo("---------------------<BR>")
				echo("       IP ISO:       <BR>")
				echo("Atual:"..ip_iso.."<BR>")
			echo("</CONSOLE>")			
			echo("<GET TYPE=FIELD ALPHA=1 NAME=IP_ISO SIZE=30 COL=0 LIN=5>")

			echo("<CONSOLE>")
				echo("Configuracao para ISO<BR>")
				echo("---------------------<BR>")
				echo("     Porta ISO:      <BR>")
				echo("Atual:"..porta_iso.."<BR>")
			echo("</CONSOLE>")			
			echo("<GET TYPE=FIELD ALPHA=1 NAME=PORTA_ISO SIZE=30 COL=0 LIN=5>")
		end
		Call_Module("Atualiza_Config")
	else
		if Modelo_POS == "VX680" then
			echo("<CONSOLE>")
				echo("<BR><BR><BR><BR><BR><BR><BR><BR>      SENHA INCORRETA !<BR>")
				echo("<BR>     Pressione   Cancela     ")
				echo("<BR>         Para  Voltar        ")
				echo("<BR>             ....            ")
			echo("</CONSOLE>")
		end		
		if Modelo_POS == "VX520" then
			echo("<CONSOLE>")
				echo("<BR>  SENHA INCORRETA !<BR>")
				echo("<BR> Pressione   Cancela")
				echo("<BR>    Para  Voltar")
				echo("<BR>        ....")
			echo("</CONSOLE>")
		end			
	end
end

function Atualiza_Config()
	
	local URL_PRINCIPAL
	local URL_CLIENTE
	local URL_WEB_SERVICE
	local COD_GRUPO
	local LOGIN
	local SENHA
	local COD_LOJA
	local Modelo_POS

	get = loadstring(GET)()
	URL_PRINCIPAL = get["URL_PRINCIPAL"]
	URL_CLIENTE = get["URL_CLIENTE"]
	URL_WEB_SERVICE	= get["URL_WEB_SERVICE"]
	URL = get["URL"]
	COD_GRUPO = get["COD_GRUPO"]
	LOGIN = get["LOGIN"]
	SENHA = get["SENHA"]
	COD_LOJA = get["COD_LOJA"]
	SENHA_CONF = get["SENHA_CONF"]
	Modelo_POS = Consulta("7")

	IP_ISO = get["IP_ISO"]
	PORTA_ISO = get["PORTA_ISO"]
	IP_ISO = Preenche_Valor(IP_ISO, "14")	
	PORTA_ISO = Preenche_Valor(PORTA_ISO, "15")	
	
	
	URL_WEB_SERVICE = Preenche_Valor(URL_WEB_SERVICE, "1")
	URL_PRINCIPAL = Preenche_Valor(URL_PRINCIPAL, "8")
	URL_CLIENTE = Preenche_Valor(URL_CLIENTE, "9")
	COD_GRUPO = Preenche_Valor(COD_GRUPO, "2")
	LOGIN = Preenche_Valor(LOGIN, "3")
	SENHA = Preenche_Valor(SENHA, "4")
	COD_LOJA = Preenche_Valor(COD_LOJA, "5")
	SENHA_CONF = Preenche_Valor(SENHA_CONF, "6")	
	
	-- Avisa que transacao ocorreu com sucesso:
	if Modelo_POS == "VX680" then
		echo("<CONSOLE>")
			echo("<BR><BR><BR><BR><BR><BR>")
			echo(" Dados gravados com sucesso !<BR><BR>")
			echo("<BR>Para Continuar Pressine Enter!")
		echo("</CONSOLE>")
	end		
	if Modelo_POS == "VX520" then
		echo("<CONSOLE>")
			echo("<BR>")
			echo("  Dados gravados com <BR>")
			echo("      sucesso !      <BR><BR>")
			echo("    Para Continuar   <BR>")
			echo("   Pressine Enter!   ")
		echo("</CONSOLE>")
	end	
	echo("<GET TYPE=ANYKEY>")
	
	echo("<get type=hidden name=url_principal value="..URL_PRINCIPAL..">")
	echo("<get type=hidden name=url_cliente value="..URL_CLIENTE..">")
	echo("<get type=hidden name=url_webservice value="..URL_WEB_SERVICE..">")
	echo("<get type=hidden name=cd_grupo value="..COD_GRUPO..">")
	echo("<get type=hidden name=de_login_usu value="..LOGIN..">")
	echo("<get type=hidden name=de_senha_usu value="..SENHA..">")
	echo("<get type=hidden name=cd_loja value="..COD_LOJA..">")
	echo("<get type=hidden name=modelo_pos value="..Modelo_POS..">")
	
	-- url_principal, url_cliente, url_webservice, cd_grupo, de_login_usu, de_senha_usu, cd_loja
	echo("<get type=hidden name=TELA value=1>")
	
	if Modelo_POS == "VX680" then
		echo("<CONSOLE>")
			echo("<BR><BR><BR><BR><BR><BR><BR><BR><BR>         Aguarde...")
		echo("</CONSOLE>")
	end		
	if Modelo_POS == "VX520" then
		echo("<CONSOLE>")
			echo("<BR><BR><BR>     Aguarde...")
		echo("</CONSOLE>")
	end
			
	echo("<POST>") -- acessa o servidor com novas configurações.
end

function Atualiza(id_Item, Value, Old_Value)

	-- identifica o elemento a ser atualizado:
	local Identificador = ObtemIdentificador(id_Item)
	
	-- deleta:
	local db_del      = sqlite3.open('rUse.db')
	local stmt_del	  = db_del:prepare("delete from "..Identificador.." where Valor = ?")
	local bind_rc_del = stmt_del:bind_values(Old_Value)
	local rc_del      = stmt_del:step()
	stmt_del:finalize()
	
	-- insere:
	local db_add      = sqlite3.open('rUse.db')
	local stmt_add 	  = db_add:prepare("insert into "..Identificador.."(Valor) VALUES (?)")
	local bind_rc_add = stmt_add:bind_values(Value)
	local rc_add	  = stmt_add:step()
	stmt_add:finalize()
	
end

function Consulta(id_Item)

	-- identifica o elemento a ser consultado:
	local Identificador = ObtemIdentificador(id_Item)
	
	-- faz a consulta no banco:
	local db = sqlite3.open('rUse.db')
	local stmt = db:prepare("select Valor from "..Identificador)
	local rc = stmt:step()
	
	while (rc == sqlite3.ROW) do
		local v = stmt:get_values()		
		ValorConsultado = v[1]		
		rc = stmt:step()
	end
	stmt:finalize()	
	return ValorConsultado
	
end

function ObtemIdentificador(ID)

	local Identificador

	if ID == "1" then
		Identificador = "url_webservice"
	end
	if ID == "2" then
		Identificador = "cd_grupo"
	end
	if ID == "3" then
		Identificador = "de_login_usu"
	end
	if ID == "4" then
		Identificador = "de_senha_usu"
	end
	if ID == "5" then
		Identificador = "cd_loja"
	end
	if ID == "6" then
		Identificador = "senha_config"
	end
	if ID == "7" then
		Identificador = "modelo_pos"
	end
	if ID == "8" then
		Identificador = "url_principal"
	end
	if ID == "9" then
		Identificador = "url_cliente"
	end
	-- novos itens para o ISO:
	if ID == "10" then
		Identificador = "id_terminal"
	end
	if ID == "11" then
		Identificador = "cod_estabelecimento"
	end
	if ID == "12" then
		Identificador = "provedor"
	end	
	if ID == "13" then
		Identificador = "num_seq_transacao"
	end
	if ID == "14" then
		Identificador = "ip_iso"
	end	
	if ID == "15" then
		Identificador = "porta_iso"
	end
	
	return Identificador	
end

function Preenche_Valor(Variable, ID)

	local Variable_final
	local Variable_cmp

	--[[
	if Variable ~= nil then
		Atualiza(ID, Variable, Consulta(ID))
	else
		Variable = Consulta(ID)
	end
	]]--
	
	-- ajuste tecnico criativo para resolver 
	-- o problema de nao funcionamento
	-- do trecho acima comentado.
	
	Variable_cmp = Variable..":"
	if Variable_cmp ~= ":" then
		Atualiza(ID, Variable, Consulta(ID))
	end	
	
	Variable_final = Consulta(ID)
	
	--[[
	echo("<CONSOLE>")
		echo("Variable:"..Variable.."<BR>")
		echo("ID:"..ID.."<BR>")
		echo("Variable_cmp:"..Variable_cmp.."<BR>")
		echo("Variable_final:"..Variable_final.."<BR>")
	echo("</CONSOLE>")
	echo("<GET TYPE=ANYKEY>")
	]]--
	
	return Variable_final
end

--***************--[[  INIT funções para o ISO: ]]--***************--

function Opcoes_ISO()
	local Modelo_POS = Consulta("7")	
	if Modelo_POS == "VX680" then
		echo("<CONSOLE>")
			echo("<BR><BR>")
			echo("    ESCOLHA A TRANSACAO :<BR><BR><BR>")
			echo("        1 - ABERTURA<BR>")
			echo("        2 - FECHAMENTO<BR>")
			echo("        3 - SALDO")
		echo("</CONSOLE>")
		echo("<GET TYPE=FIELD NAME=ESCOLHA SIZE=1 COL=90 LIN=120 NOENTER=1>")
		echo("<CONSOLE>")
			echo("<BR><BR><BR><BR><BR><BR><BR><BR><BR>         Aguarde...")
		echo("</CONSOLE>")
	end		
	if Modelo_POS == "VX520" then
		echo("<CONSOLE>")
			echo("ESCOLHA A TRANSACAO:<BR><BR>")
			echo("   1 - ABERTURA<BR>")
			echo("   2 - FECHAMENTO<BR>")
			echo("   3 - SALDO")
		echo("</CONSOLE>")
		echo("<GET TYPE=FIELD NAME=ESCOLHA SIZE=1 COL=90 LIN=120 NOENTER=1>")
		echo("<CONSOLE>")
			echo("<BR><BR><BR>     Aguarde...")
		echo("</CONSOLE>")
	end
	Call_Module("Trata_Opcoes_ISO")
end

function Trata_Opcoes_ISO()
	get = loadstring(GET)()
	local IdEscolha = get["ESCOLHA"]
	
	if IdEscolha == "1" then
		-- Abertura:
		Call_Module("Abertura")
	elseif IdEscolha == "2" then
		-- Fechamento:
		Call_Module("Fechamento")
	elseif IdEscolha == "3" then
		-- Saldo:
		Call_Module("Le_Cartao_Saldo_ISO")
	else
		-- opcão inexistente:
		if Modelo_POS == "VX680" then
			echo("<CONSOLE>")
				echo("<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>")
				echo("     ESCOLHA INCORRETA !")
			echo("</CONSOLE>")
		end		
		if Modelo_POS == "VX520" then
			echo("<CONSOLE>")
				echo("<BR><BR><BR><BR>")
				echo(" ESCOLHA INCORRETA !")
			echo("</CONSOLE>")
		end
		echo("<DELAY TIME=5>")
		Call_Module("Opcoes_ISO")
	end
end

function Abertura()
	echo("<CONSOLE>")
		echo("Processar Abertura")
	echo("</CONSOLE>")
end

function Fechamento()
	echo("<CONSOLE>")
		echo("Processar Fechamento")
	echo("</CONSOLE>")
end

function Le_Cartao_Saldo_ISO()
	local Modelo_POS = Consulta("7")	
	if Modelo_POS == "VX680" then
		echo("<CONSOLE>")
			echo("<BR><BR>")
			echo("   PASSE OU DIGITE O CARTAO<BR>")
		echo("</CONSOLE>")
		echo("<CAPTURE NAME=CARTAO>")
		echo("<GET TYPE=FIELD SIZE=19 COL=1 LIN=5>")
		echo("<GET TYPE=CARD TRACKS=2>")
		echo("</CAPTURE>")
		echo("<CONSOLE>")
			echo("<BR><BR><BR><BR><BR><BR><BR><BR><BR>         Aguarde...")
		echo("</CONSOLE>")
	end		
	if Modelo_POS == "VX520" then
		echo("<CONSOLE>")
			echo("   PASSE OU DIGITE<BR>")
			echo("      O CARTAO")
		echo("</CONSOLE>")
		echo("<CAPTURE NAME=CARTAO>")
		echo("<GET TYPE=FIELD SIZE=19 COL=1 LIN=6>")
		echo("<GET TYPE=CARD TRACKS=2>")
		echo("</CAPTURE>")
		echo("<CONSOLE>")
			echo("<BR><BR><BR>     Aguarde...")
		echo("</CONSOLE>")
	end
	echo "<GET TYPE=DATETIME NAME=HORA>"
	Call_Module("Saldo")
end


function Saldo()
	get = loadstring(GET)()
	local hora = get["HORA"]	
	local cartao = get["CARTAO"]	
	local magn=0
	local trilha2
	
	echo("<CONSOLE>")
		echo("Acessando ISO...")
	echo("</CONSOLE>")

	local card=cartao:gsub("%%3A",":")
	local card=card:gsub("%%3D","=")
	local p2=card:sub(1,1)
	if (p2==":") then
		magn=1
		trilha2=card:sub(9)
		card=card:sub(9,24)
	end
	
	dofile("iso.o")

	send = {}
	send[0]="0100"
	if (magn==0) then
		send[22]="011"
		send[2]=card
	else
		send[22]="021"
		send[35]=trilha2
	end
		
	send[3]="380000"
	send[7]="0822085800"
	send[11]="000015"
	
	send[12]=hora:sub(9,14)
	send[13]=hora:sub(5,8)

	
	send[32]="22240001"
	send[41]="TV000028"
	send[42]="22240001       "
	send[60]="10"
	send[61]="88844FD0"

--	local ipservidor="200.140.195.90"
--	local portservidor="5000"
--	local tosend = iso.encode(send, bits)

	local ipservidor = Consulta("14")
	local portservidor = Consulta("15")

	
	local ret = iso.iso(ipservidor, portservidor, send )

	if (type(ret)=='table') then
		if (ret[0]~=110) then 
			echo("<CONSOLE>TIPO RETORNADO PELO<BR>ISO DIFERENTE<BR>DE 110<BR><BR>"..ret[0].."<BR></CONSOLE>")
			echo("<GET TYPE=ANYKEY>")
			echo "<GET TYPE=MODEL NAME=MODEL_POS>"
			Call_Module("Tela_Inicial")
		elseif (ret[39]~='00') then 
			echo("<CONSOLE>ERRO RETORNADO<BR>PELO ISO<BR><BR>"..erroISO(ret[39]).."<BR></CONSOLE>")
			echo("<GET TYPE=ANYKEY>")
			echo "<GET TYPE=MODEL NAME=MODEL_POS>"
			Call_Module("Tela_Inicial")
		else
			echo("<CONSOLE>")
			echo("Imprimindo saldo...")
			echo("</CONSOLE>")
	
			echo("<PRINTER>")

			--			echo("<BR>[3]:"..ret[3])
--			echo("<BR>[7]:"..ret[7])
--			echo("<BR>[11]:"..ret[11])
--			echo("<BR>[12]:"..ret[12])
--			echo("<BR>[13]:"..ret[13])
--			echo("<BR>[32]:"..ret[32])
--			echo("<BR>[39]:"..ret[39])
--			echo("<BR>[41]:"..ret[41])
--			echo("<BR>[42]:"..ret[42])
--			echo("<BR>[48]:"..ret[48])

			local p=string.gsub(ret[62],"@", "<BR>")
			local pfx=p:sub(1,1)
			local sfx=p:sub(2)
			if (pfx=='F') then
				echo("<BR>"..sfx)
			end
			echo("<BR><BR><BR><BR><BR><BR><BR><BR></PRINTER>")
		end
	else
		echo("<CONSOLE>ERRO NO ACESSO AO ISO<BR><BR>"..ret.."<BR></CONSOLE>")
		echo("<GET TYPE=ANYKEY>")
		echo "<GET TYPE=MODEL NAME=MODEL_POS>"
		Call_Module("Tela_Inicial")
	end	
	
--	echo("<CONSOLE>")
--	echo("Tecle uma tecla")
--	echo("</CONSOLE>")
--	echo("<GET TYPE=ANYKEY>")
	echo "<GET TYPE=MODEL NAME=MODEL_POS>"
	Call_Module("Tela_Inicial")
end




function SaldoOLD()
	get = loadstring(GET)()
	local hora = get["HORA"]	

	echo("<CONSOLE>")
		echo("Processando Saldo...")
	echo("</CONSOLE>")

	dofile("iso.o")

	send = {
	[0]="0100",
	[2]="6365980253542013",
	[3]="380000",
	[7]="0822085800",
	[11]="000001",
	
	[12]=hora:sub(9,14),
	[13]=hora:sub(5,8),

	
--	[12]="085800",
--	[13]="0822",
	[22]="011",
	[32]="22240001",
	[35]="6365960011304018=0000004051710198900",
	[41]="TV000028",
	[42]="52010033       ",
	[60]="10",
	[61]="88844FD0",
	}
	
	local ipservidor="200.140.195.90"
	local portservidor="5000"
	local tosend = iso.encode(send, bits)
	
	echo("<PRINTER>QTDE DE BYTES A ENVIAR<BR>"..#tosend.."<BR></PRINTER>")
--	local retiso = iso.iso(ipservidor, portservidor, send )


	local a = socks.status() -- verifica se o tcp estï¿½ pronto
	while(a ~=4) do        
		a = socks.status() -- se nï¿½o estiver, aguarda atï¿½ estar pronto
	end
	echo("<PRINTER>sock.status<BR>"..a.."<BR>FINAL<BR></PRINTER>")
	
	local sock = socks.socket("TCP")

	echo("<PRINTER>sock.socket<BR>"..sock.."<BR>FINAL<BR></PRINTER>")


	local r = socks.connect(sock, ipservidor, portservidor)

	echo("<PRINTER>sock.connect<BR>"..r.."<BR>FINAL<BR></PRINTER>")
 
	local ss = socks.send(sock, tosend, 1) 

	echo("<PRINTER>sock.send<BR>"..ss.."<BR>FINAL<BR></PRINTER>")

	socks.wait(5000);
	local err = 235
	local b="vazio"
	while (err == 235) do -- verifica se houve alguma resposta
		b = socks.recv(sock, 1024, 1);
		socks.wait(500)
		err = socks.nerror(sock)
	end
	
	echo("<PRINTER>APOS RECV<BR>"..b.."<BR>FINAL<BR></PRINTER>")

	local ret
	
	if b == -1 then
		echo("<PRINTER>ERRO<BR>"..err.."<BR>FINAL<BR><BR><BR><BR><BR><BR><BR></PRINTER>")
	else
		ret =  iso.decode(b, bits)
		echo("<PRINTER>RET<BR>")
		echo("<BR>[3]:"..ret[3])
		echo("<BR>[7]:"..ret[7])
		echo("<BR>[11]:"..ret[11])
		echo("<BR>[12]:"..ret[12])
		echo("<BR>[13]:"..ret[13])
		echo("<BR>[32]:"..ret[32])
		echo("<BR>[39]:"..ret[39])
		echo("<BR>[41]:"..ret[41])
		echo("<BR>[42]:"..ret[42])
--		echo("<BR>[48]:"..ret[48])
		local p=string.gsub(ret[62],"@", "<BR>")
		local pfx=p:sub(1,1)
		local sfx=p:sub(2)
		if (pfx=='F') then
			echo("<BR>"..sfx)
		end
		echo("<BR>FINAL<BR><BR><BR><BR><BR><BR><BR></PRINTER>")
		
	end

	
	
	
	
	
	
	
	
	
	
	

--	if (type(retiso)=='table') then
--		echo "<BR><BR>-- venda OK"
--	else
--		echo "<BR><BR>-- venda NOK"
--		echo ("<BR>"..retiso)
--	end
	echo("<GET TYPE=ANYKEY>")

end



--***************--[[  END funções para o ISO: ]]--***************--

--[[

	- Instruções para capturar as informações:
	
	para capturar :
	
	* "id_terminal"
	variavel_recebe_valor = Consulta("10")
	
	* "cod_estabelecimento"
	variavel_recebe_valor = Consulta("10")
	
	* "provedor"
	variavel_recebe_valor = Consulta("10")
	
	------------------------
	para mudar valor :
	
	* "id_terminal"
	Atualiza("10", NovoValor, Consulta("10"))	
	
	* "cod_estabelecimento"
	Atualiza("11", NovoValor, Consulta("11"))	
	
	* "provedor"
	Atualiza("12", NovoValor, Consulta("12"))
	
	* "num_seq_transacao"
	Atualiza("13", NovoValor, Consulta("12"))
	
	-- para chamar novas funcoes:
	Call_Module("nomeFuncao")
]]

function erroISO(e)

        local errISO={}

        errISO[01]="CARTAO INVALIDO (01)"
        errISO[02]="CARTAO INVALIDO (02)"
        errISO[03]="CARTAO CANCELADO (03)"
        errISO[04]="CARTAO BLOQUEADO (04)"
        errISO[05]="CARTAO CANCELADO (05)"
        errISO[06]="CARTAO BLOQUEADO (06)"
        errISO[07]="CARTAO EXPIRADO (07)"
        errISO[08]="CARTAO BLOQUEADO (08)"
        errISO[09]="EXCESSO LIMITE (09)"
        errISO[10]="EXCESSO LIMITE (10)"
        errISO[11]="ACESSO INVALIDO (11)"
        errISO[12]="CARTAO BLOQUEADO (12)"
        errISO[13]="EXCESSO LIMITE (13)"
        errISO[14]="CARTAO BLOQUEADO (14)"
        errISO[15]="DADOS INVALIDOS (15)"
        errISO[16]="DADOS INVALIDOS (16)"
        errISO[17]="NAO AUTORIZADO (17)"
        errISO[18]="NAO AUTORIZADO (18)"
        errISO[19]="NAO AUTORIZADO (19)"
        errISO[20]="EXCESSO LIMITE (20)"
        errISO[21]="EXCESSO LIMITE (21)"
        errISO[22]="NAO AUTORIZADO (22)"
        errISO[23]="NAO AUTORIZADO (23)"
        errISO[24]="LOJA BLOQUEADA (24)"
        errISO[25]="CARTAO BLOQUEADO (25)"
        errISO[26]="CARTAO BLOQUEADO (26)"
        errISO[27]="NAO AUTORIZADO (27)"
        errISO[28]="CONVENIO BLOQUEADO (28)"
        errISO[29]="NAO AUTORIZADO (29)"
        errISO[30]="SENHA INVALIDA (30)"
        errISO[31]="CVV INVALIDO (31)"
        errISO[32]="NAO AUTORIZADO (32)"
        errISO[33]="CARTAO BLOQUEADO (33)"
        errISO[34]="NAO AUTORIZADO (34)"
        errISO[35]="NAO AUTORIZADO (35)"
        errISO[36]="NAO AUTORIZADO (36)"
        errISO[37]="CARTAO BLOQUEADO (37)"
        errISO[38]="CONVENIO BLOQUEADO (38)"
        errISO[39]="CARTAO BLOQUEADO (39)"
        errISO[40]="EXCESSO LIMITE (40)"
        errISO[41]="DADOS INVALIDOS (41)"
        errISO[42]="DADOS INVALIDOS (42)"
        errISO[43]="NAO AUTORIZADO (43)"
        errISO[44]="NAO AUTORIZADO (44)"
        errISO[45]="EXCESSO LIMITE (45)"
        errISO[46]="CARTAO BLOQUEADO (46)"
        errISO[47]="NAO AUTORIZADO (47)"
        errISO[48]="NAO AUTORIZADO (48)"
        errISO[50]="NAO AUTORIZADO (50)"
        errISO[51]="NAO AUTORIZADO (51)"
        errISO[52]="NAO AUTORIZADO (52)"
        errISO[53]="NAO AUTORIZADO (53)"
        errISO[54]="NAO AUTORIZADO (54)"
        errISO[55]="DUPLICIDADE (55)"
        errISO[56]="LOJA INVALIDA (56)"
        errISO[57]="LOJA INVALIDA (57)"
        errISO[58]="NAO AUTORIZADO (58)"
        errISO[59]="NAO AUTORIZADO (59)"
        errISO[70]="NAO AUTORIZADO (70)"
        errISO[71]="NAO AUTORIZADO (71)"
        errISO[72]="NAO AUTORIZADO (72)"
        errISO[73]="NAO AUTORIZADO (73)"
        errISO[74]="NAO AUTORIZADO (74)"
        errISO[98]="DADOS INVALIDOS (98)"
        errISO[99]="ERRO INTERNO (99)"
		
		local i=tonumber(e)
		local ret=errISO[i]
		return ret
end
